package com.yangxk.kadmin.web.module.system.service;

import com.yangxk.kadmin.common.base.BaseService;
import com.yangxk.kadmin.web.module.system.form.AuthForm;
import com.yangxk.kadmin.web.module.system.form.AuthQueryForm;
import com.yangxk.kadmin.web.module.system.po.Auth;
import com.yangxk.kadmin.web.module.system.vo.AuthTree;

import java.util.List;

public interface AuthService extends BaseService<Auth, Long> {

    /**==============================页面展示需要==========================================*/

    /**
     * 查询权限树
     * create by yangxk on 2018/10/19 15:50
     */
    List<AuthTree> queryAuthTree();

    /**
     * 根据父id及查询条件查询
     * @param queryForm
     * @return
     */
    List<Auth> queryByParent(AuthQueryForm queryForm);

    /**
     * 添加
     * create by yangxk on 2018/9/19 16:11
     */
    long addAuth(AuthForm authForm);

    /**
     * 更新
     * create by yangxk on 2018/9/19 16:11
     */
    void updateAuth(AuthForm authForm);

    /**
     * 删除
     * create by yangxk on 2018/9/19 16:11
     */
    void deleteAuth(long id);

    /**
     * 批量删除
     * create by yangxk on 2018/9/19 16:11
     */
    void deleteAuth(String ids);

    /**=======================权限设计需要=================================================*/

    /**
     * 根据用户ID查询权限
     * create by yangxk on 2018/10/19 15:15
     */
    List<Auth> queryUserAuth(long userId);

    /**
     * 根据用户ID查询权限树
     * create by yangxk on 2018/10/19 15:17
     */
    List<AuthTree> queryUserAuthTree(long userId);

    /**
     * 查询所有权限
     * create by yangxk on 2018/10/19 16:46
     */
    List<Auth> queryAllAuth();
}
